The growing presence of the Internet as well as other computer networks such as intranets and extranets has brought many new applications in e-commerce and other areas. Organizations increasingly rely on such applications to carry out their business or other objectives, and devote considerable resources to ensuring that the applications perform as expected. To this end, various application management techniques have been developed.
One application management technique involves monitoring application performance using synthetic transactions. A synthetic transaction is a transaction sent to a web service system from a robot or other source besides a real user. Synthetic transactions may be used to test load, functionality, performance and other aspects of a web service; synthetic transactions are not provided to utilize web service functionality as done by real user requests.
Synthetic transactions may be generated and sent to a web service to create a load on the web service. The response of the web service to the load created can then be monitored. In some cases, synthetic transactions are used on production applications to periodically test whether the applications are available and behaving as expected.
Use of synthetic transactions can be problematic because of the limited coverage provided and the size of the load they create. Most moderately sized applications are capable of performing a large number of transactions. Each application transaction performs specific a function for the application. Application functionality should be tested frequently to ensure timely discovery of problems. Frequent usage of synthetic transactions combined with broad coverage of the transactions to cover application functionality can create significant load on and affect performance of a web service and its applications. Also, certain application functionality are prohibited from being performed by a non-real user (for example the execution of a real stock trade). Additionally, if a monitored application is already under high load, creating additional load on the web service or application with synthetic transactions only worsens this problem.